package com.travel.service.Service;

import com.travel.model.dto.auth.PasswordChangeRequest;
import com.travel.model.dto.user.UserDTO;
import com.travel.model.dto.user.UserProfileUpdateDTO;
import com.travel.model.entity.auth.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
//用户服务 获取当前用户 获取用户 注册用户 检查用户名是否存在 检查邮箱是否存在 更新用户资料 修改密码 获取所有用户 更新用户状态 获取用户 更新用户资料 更新密码 更新用户资料
public interface UserService {
    User getCurrentUser();
    User findByUsername(String username);
    int registerUser(UserDTO userDTO);
    boolean existsByUsername(String username);
    boolean existsByEmail(String email);
    User updateProfile(UserDTO userDTO);
    void changePassword(PasswordChangeRequest request);
    Page<User> getAllUsers(Pageable pageable);
    void updateUserStatus(Long id, Integer status);
    User getUserById(Long id);
    void updateProfile(Long id, UserDTO userDTO);
    void updatePassword(Long id, String oldPassword, String newPassword);
    User updateUserProfile(UserProfileUpdateDTO updateDTO);
} 